/*1. 使用命名空间
适当地使用命名空间，并不会杜绝全局变量，但可以减少全局变量的数量。
最简单的方法依然是用对象字面量的方式：*/
// var namespace={
//     a:function(){
//
//     },
//     b:function(){
//
//     }
// }
/*2.动态的创建命名空间*/
var myApp={};
myApp.namespace=function(name){
    var parts=name.split('.');
    var current=myApp;
    for(var i in parts){
        if(!current[parts[i]]){
            current=current[parts[i]]={};
        }
        current=current[parts[i]];
    }
}
myApp.namespace('123');
myApp.namespace('ang.123');

console.dir(myApp);

var MyApp = {
    123: {},
    ang: {
        123: {}
    }
};
/*2. 使用闭包封装私有变量
这种方法把一些变量封装在闭包的内部，只暴露一些接口跟外界通信：
*/
var user = (function(){
var __name = 'sven',
__age = 29;
return {
getUserInfo: function(){
return __name + '-' + __age;
}
}
})();

/*我们用下划线来约定私有变量__name 和__age，它们被封装在闭包产生的作用域中，外部是
访问不到这两个变量的，这就避免了对全局的命令污染。*/